/**
 * 把时间转化指定字符串
 * @param {(Object|string|number)} time
 * @param {string} cFormat
 * @returns {string}
 * 使用
 * parseTime('2019-08-08 08:00','{y}年{m}月{d}日 {h}时{i}分{s}秒')  //2019年08月08日 08时00分00秒
 * parseTime('2019-08-08 08:00','{y}/{m}/{d} {h}:{i}')  //2019/08/08 08:00:00
 * parseTime(new Date(),'{y}-{m}-{d} {h}-{i}')   //2019-08-08 08:00:00
 */
export const parseTime =  function (time, cFormat) {
  // console.log(typeof time)
  if (arguments.length === 0) {
      return null
  }
  const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}'
  let date

  if (typeof time === 'object') {
      date = time
  } else {
      if ((typeof time === 'string') && (/^[0-9]+$/.test(time))) {
          time = parseInt(time)
      }
      if ((typeof time === 'number') && (time.toString().length === 10)) {
          time = time * 1000
      }
      if (typeof time === 'string' && time.indexOf('-')) {
          time = time.replace(/-/g, '/')
      }
      date = new Date(time)
  }
  const formatObj = {
      y: date.getFullYear(),
      m: date.getMonth() + 1,
      d: date.getDate(),
      h: date.getHours(),
      i: date.getMinutes(),
      s: date.getSeconds(),
      a: date.getDay()
  }
  const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => {
      let value = formatObj[key]
      // Note: getDay() returns 0 on Sunday
      if (key === 'a') {
          return ['日', '一', '二', '三', '四', '五', '六'][value]
      }
      if (result.length > 0 && value < 10) {
          value = '0' + value
      }
      return value || 0
  })
  return time_str
}